import Vue from 'vue'
import axios from 'axios'
import jsCookie from 'js-cookie'

import App from './App.vue'
import MintUI from 'mint-ui'
import 'mint-ui/lib/style.css'
import { Toast } from 'mint-ui'

import router from '@/route'
import store from '@/store/store'

Vue.use(MintUI)

//添加axios到Vue原型上使每个实例都能使用不用重复导入 缺点没有代码提示
Vue.prototype.$axios = axios

Vue.config.productionTip = false

//全局路由守卫实现自动登录
router.beforeEach((to, from, next) => {
  //跳转到login路由时
  if (to.name === 'login') {
    if (jsCookie.get('userid')) {
      //cookie没过期判断是否自动登录
      axios.get('/api/autoLogin').then(data => {
        console.log(data)
        if (data.data.code === 0) {
          Toast('登录成功')
          router.replace(`/chat`)
        } else {
          Toast('该用户已登录,一个浏览器只能登录一个账号')
        }
      })
    } else {
      //跳转login但是没cookie则跳转到登录
      next()
    }
  } else {
    //不是login时按路由规则跳转
    next()
  }

  //跳转到chat路由时 表示正在聊天
  if (to.name === 'chat') {
    if (!jsCookie.get('userid')) {
      //cookie过期重新登录
      router.replace('/login')
      return
    }
    //cookie没过期
  }
})

new Vue({
  render: h => h(App),
  router,
  store
}).$mount('#app')
